昨天的用法我後來發現有個問題,因為我表單實際上沒使用 from,所以原本的方法沒辦法幫我帶 token 進去後端驗證,那怎麼辦呢
撞牆很久發現
+page 其實它是後端就先渲染了,所以要這樣用
import { onMount } from 'svelte';
let container;
let token = '';
onMount(() => {
turnstile.render(container, {
sitekey: 'SITE-KEY',
callback: (t) => {
console.log('驗證成功', t);
token = t;
}
});
});
<div
bind:this={container}
class="cf-turnstile mx-auto"
data-theme="light"
data-size="normal"
></div>
我一開始單純在 onMount 使用 window 配 data-callback 很天真的認為那邊成功後,我就直接把資料傳過去後端就好了咩,結果不行,後來才發現 svelte 後端先渲染好,再呈現畫面的,所以你前端這時候改參數,後端是不會知道的,但如果一開始就 bind,他兩邊的值就可以同步變更了
明天來後端驗證吧
今日的情緒抒發:
終於撐到放假了,大家假日要幹嘛捏,有推薦嗎